As computing devices (e.g., computers, tablets, and smart phones) get more powerful, they are also getting more complicated. Applications and programs have been designed to help users optimize the performance of the devices. However, optimization processes have lots of subtleties and compromises that require users to make numerous choices. It is often very time and energy consuming for users to study and decide what to do with each optimization task proposed by the optimization software. Therefore, it is desirable to have a method of prioritizing and managing optimization tasks in a way that is tailored to the need of every user.